registerTests([
function SequenceEquals_Test_0()
{
	var myArray = [5, 3, 2, 1, 7, 23];
	var myOtherArray = [5, 3, 2, 1, 7, 23];
	
	Assert.isTrue(myArray.SequenceEquals(myOtherArray));
	
	myOtherArray = [5, 3, 2, 1, 7, 24];
	Assert.isFalse(myArray.SequenceEquals(myOtherArray));
	
	myOtherArray = [5, 3, 2, 1, 7];
	Assert.isFalse(myArray.SequenceEquals(myOtherArray));
	
	myOtherArray = [5, 3, 2, 1, 23, 7];
	Assert.isFalse(myArray.SequenceEquals(myOtherArray));
},
function SelectMany_Comparator_Test_0()
{
	var myArray = [{x: 5}, {x: 3}, {x: 2}, {x: 1}, {x: 7}, {x: 23}];
	var myOtherArray = [{x: 5}, {x: 3}, {x: 2}, {x: 1}, {x: 7}, {x: 23}];
	
	Assert.isTrue(myArray.SequenceEquals(myOtherArray, "(a, b) => a.x == b.x"));
	
	myOtherArray = [{x: 5}, {x: 3}, {x: 2}, {x: 1}, {x: 7}, {x: 24}];
	Assert.isFalse(myArray.SequenceEquals(myOtherArray, "(a, b) => a.x == b.x"));

},
function SelectMany_IgnoreOrder_Test_0()
{
	var myArray = [5, 3, 2, 1, 7, 23];
	var myOtherArray = [5, 23, 2, 1, 7, 3];
	
	Assert.isTrue(myArray.SequenceEquals(myOtherArray, null, true));
	
	myOtherArray = [5, 3, 2, 1, 7, 23];
	Assert.isTrue(myArray.SequenceEquals(myOtherArray, null, true));
	
	myOtherArray = [5, 3, 2, 1, 7];
	Assert.isFalse(myArray.SequenceEquals(myOtherArray, null, true));

	myOtherArray = [5, 3, 2, 1, 7, 7];
	Assert.isFalse(myArray.SequenceEquals(myOtherArray, null, true));

	myOtherArray = [5, 3, 2, 1, 7, 7, 23];
	Assert.isFalse(myArray.SequenceEquals(myOtherArray, null, true));
},
function SelectMany_Comparator_IgnoreOrder_Test_0()
{
	var myArray = [{x: 5}, {x: 3}, {x: 2}, {x: 1}, {x: 7}, {x: 23}];
	var myOtherArray = [{x: 5}, {x: 3}, {x: 23}, {x: 1}, {x: 7}, {x: 2}];
	
	Assert.isTrue(myArray.SequenceEquals(myOtherArray, "(a, b) => a.x == b.x", true), "First");
	
	myOtherArray = [{x: 5}, {x: 3}, {x: 2}, {x: 1}, {x: 7}, {x: 23}];
	Assert.isTrue(myArray.SequenceEquals(myOtherArray, "(a, b) => a.x == b.x", true), "Second");
	
	myOtherArray = [{x: 5}, {x: 3}, {x: 2}, {x: 1}, {x: 7}, {x: 23}, {x: 23}];
	Assert.isFalse(myArray.SequenceEquals(myOtherArray, "(a, b) => a.x == b.x", true), "Third");
},
]);